Plug a memory leak
authorMatthias Clasen <matthiasc@src.gnome.org>
Fri, 19 Sep 2008 04:43:01 +0000 (04:43 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 19 Sep 2008 04:43:01 +0000 (04:43 +0000)
svn path=/trunk/; revision=21439

modules/other/gail/ChangeLog
modules/other/gail/gailtreeview.c

index ee0ebb8116d672b1ecf3e08f70411a402cbaa192..e7a1b7c194d04581b36c0b20cc46df28721cf750 100644 (file)
@@ -1,3 +1,8 @@
+2008-09-19  Matthias Clasen <mclasen@redhat.com>
+
+       * gailtreeview.c (garbage_collect_cell_data): Actually free
+       the copied list.
+
 2008-08-21  Li Yuan  <li.yuan@sun.com>
 
        * gailtreeview.c: (traverse_cells):
index 4e5e338d25f3d129389aa2dbe312855a2db5c45c..6d6dc653954a9c27290df6fd0bc52f664b7b69b4 100644 (file)
@@ -3667,12 +3667,12 @@ static gboolean
 garbage_collect_cell_data (gpointer data)
 {
       GailTreeView *tree_view;
-      GList *temp_list;
+      GList *temp_list, *list;
       GailTreeViewCellInfo *cell_info;
 
       g_assert (GAIL_IS_TREE_VIEW (data));
       tree_view = (GailTreeView *)data;
-      temp_list = g_list_copy (tree_view->cell_data);
+      list = g_list_copy (tree_view->cell_data);
 
       tree_view->garbage_collection_pending = FALSE;
       if (tree_view->idle_garbage_collect_id != 0) 
@@ -3682,6 +3682,7 @@ garbage_collect_cell_data (gpointer data)
       }
 
       /* Must loop through them all */
+      temp_list = list;
       while (temp_list != NULL)
       {
           cell_info = temp_list->data;
@@ -3696,7 +3697,7 @@ garbage_collect_cell_data (gpointer data)
          }
           temp_list = temp_list->next;
       }
-      g_list_free (temp_list);
+      g_list_free (list);
 
       return tree_view->garbage_collection_pending;
 }